/**
 * <copyright>
 * </copyright>
 *
 */
package org.xtext.example.mydsl.myDsl.impl;

import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EPackage;

import org.eclipse.emf.ecore.impl.EFactoryImpl;

import org.eclipse.emf.ecore.plugin.EcorePlugin;

import org.xtext.example.mydsl.myDsl.Accion;
import org.xtext.example.mydsl.myDsl.CampoSubred;
import org.xtext.example.mydsl.myDsl.Configuration;
import org.xtext.example.mydsl.myDsl.DenegarUnaIP;
import org.xtext.example.mydsl.myDsl.Destino;
import org.xtext.example.mydsl.myDsl.EnabledHigh;
import org.xtext.example.mydsl.myDsl.EnabledIP;
import org.xtext.example.mydsl.myDsl.EnabledLess;
import org.xtext.example.mydsl.myDsl.EnabledPuerto;
import org.xtext.example.mydsl.myDsl.EnabledRange;
import org.xtext.example.mydsl.myDsl.False;
import org.xtext.example.mydsl.myDsl.Filtro;
import org.xtext.example.mydsl.myDsl.IP;
import org.xtext.example.mydsl.myDsl.IPNoAceptaIp;
import org.xtext.example.mydsl.myDsl.Logguear;
import org.xtext.example.mydsl.myDsl.Mayor;
import org.xtext.example.mydsl.myDsl.Menor;
import org.xtext.example.mydsl.myDsl.Mensaje;
import org.xtext.example.mydsl.myDsl.Model;
import org.xtext.example.mydsl.myDsl.MyDslFactory;
import org.xtext.example.mydsl.myDsl.MyDslPackage;
import org.xtext.example.mydsl.myDsl.Puerto;
import org.xtext.example.mydsl.myDsl.Rango;
import org.xtext.example.mydsl.myDsl.RangoNoaceptaIp;
import org.xtext.example.mydsl.myDsl.Redireccionar;
import org.xtext.example.mydsl.myDsl.Regla;
import org.xtext.example.mydsl.myDsl.SoloAceptaSubred;
import org.xtext.example.mydsl.myDsl.Subred;
import org.xtext.example.mydsl.myDsl.True;

/**
 * <!-- begin-user-doc -->
 * An implementation of the model <b>Factory</b>.
 * <!-- end-user-doc -->
 * @generated
 */
public class MyDslFactoryImpl extends EFactoryImpl implements MyDslFactory
{
  /**
   * Creates the default factory implementation.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public static MyDslFactory init()
  {
    try
    {
      MyDslFactory theMyDslFactory = (MyDslFactory)EPackage.Registry.INSTANCE.getEFactory("http://www.xtext.org/example/mydsl/MyDsl"); 
      if (theMyDslFactory != null)
      {
        return theMyDslFactory;
      }
    }
    catch (Exception exception)
    {
      EcorePlugin.INSTANCE.log(exception);
    }
    return new MyDslFactoryImpl();
  }

  /**
   * Creates an instance of the factory.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public MyDslFactoryImpl()
  {
    super();
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public EObject create(EClass eClass)
  {
    switch (eClass.getClassifierID())
    {
      case MyDslPackage.MODEL: return createModel();
      case MyDslPackage.CONFIGURATION: return createConfiguration();
      case MyDslPackage.DESTINO: return createDestino();
      case MyDslPackage.IP: return createIP();
      case MyDslPackage.PUERTO: return createPuerto();
      case MyDslPackage.CAMPO_SUBRED: return createCampoSubred();
      case MyDslPackage.SUBRED: return createSubred();
      case MyDslPackage.MAYOR: return createMayor();
      case MyDslPackage.MENOR: return createMenor();
      case MyDslPackage.RANGO: return createRango();
      case MyDslPackage.REGLA: return createRegla();
      case MyDslPackage.ACCION: return createAccion();
      case MyDslPackage.MENSAJE: return createMensaje();
      case MyDslPackage.ENABLED_PUERTO: return createEnabledPuerto();
      case MyDslPackage.ENABLED_IP: return createEnabledIP();
      case MyDslPackage.ENABLED_RANGE: return createEnabledRange();
      case MyDslPackage.ENABLED_HIGH: return createEnabledHigh();
      case MyDslPackage.ENABLED_LESS: return createEnabledLess();
      case MyDslPackage.REDIRECCIONAR: return createRedireccionar();
      case MyDslPackage.LOGGUEAR: return createLogguear();
      case MyDslPackage.FILTRO: return createFiltro();
      case MyDslPackage.DENEGAR_UNA_IP: return createDenegarUnaIP();
      case MyDslPackage.IP_NO_ACEPTA_IP: return createIPNoAceptaIp();
      case MyDslPackage.RANGO_NOACEPTA_IP: return createRangoNoaceptaIp();
      case MyDslPackage.SOLO_ACEPTA_SUBRED: return createSoloAceptaSubred();
      case MyDslPackage.BOOLEAN: return createBoolean();
      case MyDslPackage.TRUE: return createTrue();
      case MyDslPackage.FALSE: return createFalse();
      default:
        throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
    }
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public Model createModel()
  {
    ModelImpl model = new ModelImpl();
    return model;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public Configuration createConfiguration()
  {
    ConfigurationImpl configuration = new ConfigurationImpl();
    return configuration;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public Destino createDestino()
  {
    DestinoImpl destino = new DestinoImpl();
    return destino;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public IP createIP()
  {
    IPImpl ip = new IPImpl();
    return ip;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public Puerto createPuerto()
  {
    PuertoImpl puerto = new PuertoImpl();
    return puerto;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public CampoSubred createCampoSubred()
  {
    CampoSubredImpl campoSubred = new CampoSubredImpl();
    return campoSubred;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public Subred createSubred()
  {
    SubredImpl subred = new SubredImpl();
    return subred;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public Mayor createMayor()
  {
    MayorImpl mayor = new MayorImpl();
    return mayor;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public Menor createMenor()
  {
    MenorImpl menor = new MenorImpl();
    return menor;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public Rango createRango()
  {
    RangoImpl rango = new RangoImpl();
    return rango;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public Regla createRegla()
  {
    ReglaImpl regla = new ReglaImpl();
    return regla;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public Accion createAccion()
  {
    AccionImpl accion = new AccionImpl();
    return accion;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public Mensaje createMensaje()
  {
    MensajeImpl mensaje = new MensajeImpl();
    return mensaje;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EnabledPuerto createEnabledPuerto()
  {
    EnabledPuertoImpl enabledPuerto = new EnabledPuertoImpl();
    return enabledPuerto;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EnabledIP createEnabledIP()
  {
    EnabledIPImpl enabledIP = new EnabledIPImpl();
    return enabledIP;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EnabledRange createEnabledRange()
  {
    EnabledRangeImpl enabledRange = new EnabledRangeImpl();
    return enabledRange;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EnabledHigh createEnabledHigh()
  {
    EnabledHighImpl enabledHigh = new EnabledHighImpl();
    return enabledHigh;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EnabledLess createEnabledLess()
  {
    EnabledLessImpl enabledLess = new EnabledLessImpl();
    return enabledLess;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public Redireccionar createRedireccionar()
  {
    RedireccionarImpl redireccionar = new RedireccionarImpl();
    return redireccionar;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public Logguear createLogguear()
  {
    LogguearImpl logguear = new LogguearImpl();
    return logguear;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public Filtro createFiltro()
  {
    FiltroImpl filtro = new FiltroImpl();
    return filtro;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public DenegarUnaIP createDenegarUnaIP()
  {
    DenegarUnaIPImpl denegarUnaIP = new DenegarUnaIPImpl();
    return denegarUnaIP;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public IPNoAceptaIp createIPNoAceptaIp()
  {
    IPNoAceptaIpImpl ipNoAceptaIp = new IPNoAceptaIpImpl();
    return ipNoAceptaIp;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public RangoNoaceptaIp createRangoNoaceptaIp()
  {
    RangoNoaceptaIpImpl rangoNoaceptaIp = new RangoNoaceptaIpImpl();
    return rangoNoaceptaIp;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public SoloAceptaSubred createSoloAceptaSubred()
  {
    SoloAceptaSubredImpl soloAceptaSubred = new SoloAceptaSubredImpl();
    return soloAceptaSubred;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public org.xtext.example.mydsl.myDsl.Boolean createBoolean()
  {
    BooleanImpl boolean_ = new BooleanImpl();
    return boolean_;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public True createTrue()
  {
    TrueImpl true_ = new TrueImpl();
    return true_;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public False createFalse()
  {
    FalseImpl false_ = new FalseImpl();
    return false_;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public MyDslPackage getMyDslPackage()
  {
    return (MyDslPackage)getEPackage();
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @deprecated
   * @generated
   */
  @Deprecated
  public static MyDslPackage getPackage()
  {
    return MyDslPackage.eINSTANCE;
  }

} //MyDslFactoryImpl
